#include "..\..\std_lib_facilities.h"

enum symbol{space, alpha, digit, xdigit, upper, lower, alnum, ctrl, punct, print, graph};

wstring symbol_type(symbol s)
{
	switch (s)
	{
	case space:
		return (L"space");
	case alpha:
		return (L"alpha");
	case digit:
		return (L"digit");
	case xdigit:
		return (L"xdigit");
	case upper:
		return (L"upper");
	case lower:
		return (L"lower");
	case alnum:
		return (L"alnum");
	case ctrl:
		return (L"ctrl");
	case punct:
		return (L"punct");
	case print:
		return (L"print");
	case graph:
		return (L"graph");
	}
}


void write_c(wchar_t c, wostream& outs)
{
	outs << c << '\t';
	if (iswspace(c))  outs << symbol_type(space)		<<'\t';
	if (iswalpha(c))  outs << symbol_type(alpha)		<<'\t';
	if (iswdigit(c))  outs << symbol_type(digit)		<<'\t';
	if (iswxdigit(c)) outs << symbol_type(xdigit)		<<'\t';
	if (iswupper(c))  outs << symbol_type(upper)		<<'\t';
	if (iswlower(c))  outs << symbol_type(lower)		<<'\t';
	if (iswalnum(c))  outs << symbol_type(alnum)		<<'\t';
	if (iswcntrl(c))  outs << symbol_type(ctrl)			<<'\t';
	if (iswpunct(c))  outs << symbol_type(punct)		<<'\t';
	if (iswprint(c))  outs << symbol_type(print)		<<'\t';
	if (iswgraph(c))  outs << symbol_type(graph)		<<'\t';
	outs << '\n';
}



int main()
{
	system("chcp 1251 > NUL");
	locale loc = prepare_iostream();
	
	wstring s;
	getline(wcin, s);
	for (int i = 0; i < s.size(); ++i)
	{
		//write_c (s[i],wcout);
		wcout << toupper(s[i], loc);
	}
	wcout << endl;

	system("pause");
	return 0;
}